package cn.elwy.framework.dao.annotation;
// package cn.elwy.framework.dao.annotation;
//
//
// import javax.sql.DataSource;
//
// import org.apache.ibatis.session.SqlSessionFactory;
// import org.mybatis.spring.SqlSessionFactoryBean;
// import org.springframework.beans.factory.annotation.Qualifier;
// import org.springframework.beans.factory.annotation.Value;
// import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
// import org.springframework.boot.context.properties.ConfigurationProperties;
// import org.springframework.context.annotation.Bean;
// import org.springframework.context.annotation.Configuration;
// import org.springframework.context.annotation.Primary;
// import
// org.springframework.core.io.support.PathMatchingResourcePatternResolver;
// import org.springframework.jdbc.datasource.DataSourceTransactionManager;
//
// import com.alibaba.druid.pool.DruidDataSource;
//
// @Configuration
// public class MasterDataSourceConfig {
//
// // 精确到 master 目录，以便跟其他数据源隔离
// static final String PACKAGE = "org.spring.springboot.dao.master";
// static final String MAPPER_LOCATION = "classpath:mapper/master/*.xml";
//
// @Value("${master.datasource.url}")
// private String url;
//
// @Value("${master.datasource.username}")
// private String user;
//
// @Value("${master.datasource.password}")
// private String password;
//
// @Value("${master.datasource.driverClassName}")
// private String driverClass;
//
// @Bean(name = "masterDataSource")
// @ConfigurationProperties(prefix = "spring.datasource.master")
// @Primary
// public DataSource masterDataSource() {
// DruidDataSource dataSource = new DruidDataSource();
// dataSource.setDriverClassName(driverClass);
// dataSource.setUrl(url);
// dataSource.setUsername(user);
// dataSource.setPassword(password);
// return dataSource;
// }
// @Bean(name = "primaryTestDataSource")
// @Primary
// public DataSource primaryTestDataSource() {
// return DataSourceBuilder.create().build();
// }
//
// @Bean(name = "masterTransactionManager")
// @Primary
// public DataSourceTransactionManager masterTransactionManager() {
// return new DataSourceTransactionManager(masterDataSource());
// }
//
// @Bean(name = "masterSqlSessionFactory")
// @Primary
// public SqlSessionFactory
// masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource
// masterDataSource)
// throws Exception {
// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(masterDataSource);
// sessionFactory.setMapperLocations(
// new
// PathMatchingResourcePatternResolver().getResources(MasterDataSourceConfig.MAPPER_LOCATION));
// return sessionFactory.getObject();
// }
// }